<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../../lib/jquery-3.4.1.js"></script>
    <style>
        *{
            margin: 0;
            padding: 0
        }
        img{width:240px;}
        .item{
            border:2px solid pink;
            padding:20px;
            float: left;
        }
    </style>
</head>
<body>
    <div class="content">
        <div class="item">
            <img src="images/01.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/02.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/03.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/04.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/05.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/06.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/07.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/08.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/09.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/10.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/11.jpg" alt="">
        </div>
        <div class="item">
            <img src="images/12.jpg" alt="">
        </div>
    </div>
    <script>
        // 1.看一排能放置几张图片  num
        
        window.onload=function(){
            var ww=$(window).width();//屏幕宽度
            var itemWidth=$(".item").outerWidth();//单个图片item的宽度
            var num=Math.floor(ww/itemWidth);//屏幕一排可以放置几张图片
            // 2.将第一排的高度添加到一个数组中
            var heightArr=[];
            $(".item").each((index,item)=>{//对所有的item进行遍历
                if(index<num){//当item 的数量小于一排可以放置的数量 也就是给第一排的图片的高度 建立一个数组
                    console.log($(item).outerHeight());//输出各个item的高度
                    var item=$(item).outerHeight();//将各个item的高度取到
                    heightArr.push(item);//将高度建立一个数组
                }else{//超出一排能容纳的图片的处理
                    // 3.从数组高度最小的地方添加图片
                    var minHeight=Math.min(...heightArr);//先找出第一排中最小高度的图片的高度
                    var minIndex=heightArr.indexOf(minHeight);//找到这个图片在数组中的下标
                    var offsetLeft=$(".item").eq(minIndex).offset().left;//找到第一排高度最小的图片距离左边的距离
                    $(".item").eq(index).css({position:'absolute',top:minHeight,left:offsetLeft});//给新加的图片进行定位
                    // 重置数组的最小高度
                    var height=$(".item").eq(index).outerHeight();//取得当前插入的图片的高度
                    heightArr[minIndex]=minHeight+height//对高度数组进行重置，将最新的高度给数组。
                }
            })
        }
    </script>
</body>
</html>